鏈路層輸出 -qdisc
二層發送中,實現qdisc的主要函數是__dev_xmit_skb和net_tx_action,本篇將分析qdisc實現的原理,僅對框架進行分析。 其框架如下圖所示 qdisc初始化 ...
二層發送中,實現qdisc的主要函數是__dev_xmit_skb和net_tx_action,本篇將分析qdisc實現的原理,僅對框架進行分析。 其框架如下圖所示 qdisc初始化 ...
1、linux目前支持多種協議族,每個協議族用一個net_porto_family結構實例來表示,在初始化時,會調用sock_register()函數初始化注冊到net_families[NPROTO ...
無論是從本地輸出的數據還是轉發的數據報文,經過路由后都要輸出到網絡設備,而輸出到網絡設備的接口就是dst_output(output)函數 路由的時候,dst_output函數設置為ip_outpu ...
不管是收到報文轉發還是本機發送報文,最后都會調用dst_output 單播: /* * 對於單播數據包,目的路由緩存項中的輸出接口是ip_output(). */ int ...
在ip_local_deliver中,如果檢測到是分片包,則需要將報文進行重組。其所有的分片被重新組合后才能提交到上層協議,每一個被重新組合的數據包文用ipq結構實例來表示 ...
中斷服務程序接收報文后都交由__netif_receive_skb處理:根據協議將報文向上傳輸; packet_type 結構為網絡層輸入接口;其支持多種協議,每個協議族都會實現一個接收報文的的實例 ...